﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace NutriLeaf.Web.Core.Temperature
{
    public interface ITemperature
    {
        void InsertTemperature(int cityId,ref NutriLeaf.Web.Model.NutriLeafDBEntities context); //get the current city temperature with Weather Service form the internet

        void InsertTemperature(int cityId, DateTime dateTime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertTemperature(int cityId, double averageTemp, double maximumTemperature, double minimumTemperature, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertTemperature(int cityId, double averageTemp, double maximumTemperature, double minimumTemperature, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertTemperature(string city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context); //get the current city temperature with Weather Service form the internet

        void InsertTemperature(string city, DateTime dateTime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertTemperature(string city, double averageTemp, double maximumTemperature, double minimumTemperature, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertTemperature(string city, double averageTemp, double maximumTemperature, double minimumTemperature, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertTemperature(Model.TemperatureDiary temperature, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetAverageTemperature(string city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetAverageTemperature(int cityId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetAverageTemperature(string city, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetAverageTemperature(int cityId, DateTime dateTime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMinTemperature(string city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMinTemperature(int cityId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMinTemperature(string city, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMinTemperature(int cityId, DateTime dateTime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMaxTemperature(string city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMaxTemperature(int cityId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMaxTemperature(string city, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        double GetMaxTemperature(int cityId, DateTime dateTime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.TemperatureDiary GetTemperature(string city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.TemperatureDiary GetTemperature(int cityId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.TemperatureDiary GetTemperature(string city, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.TemperatureDiary GetTemperature(int cityId, DateTime dateTime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

     
        void UpdateTemperature(int temperatureId, int cityId, double averageTemp, double maximumTemperature, double minimumTemperature, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void RemoveTemperature(int temperatureId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

    }
}